package com.mlk.waste.service;

import com.mlk.core.component.page.Pager;
import com.mlk.core.util.ServerResponse;
import com.mlk.waste.po.EngWasteTypeTree;
import com.mlk.waste.po.EngWasteTypeTreePrice;

import java.util.List;

public interface WasteTypeTreeService {

    ServerResponse addMainType(String name,String unit);

    /**
     * 查询所有的节点
     * @return
     */
    ServerResponse queryAllNode();

    /**
     * 修改节点的名称
     * @param tree
     * @return
     */
    ServerResponse editTypeName(EngWasteTypeTree tree);

    /**
     * 添加子级
     * @param tree
     * @return
     */
    ServerResponse addSon(EngWasteTypeTree tree);

    /**
     * 添加树节点的价格信息
     * @param price
     * @return
     */
    ServerResponse addTreeNodePrice(EngWasteTypeTreePrice price);

    /**
     * 删除浮动价格
     * @param id
     * @return
     */
    ServerResponse delTreeNodePrice(Integer id);

    /**
     * 修改浮动价格
     * @param price
     * @return
     */
    ServerResponse editTreeNodePrice(EngWasteTypeTreePrice price);

    /**
     * 查看浮动价格
     * @param typeId
     * @return
     */
    Pager queryAllTreeNodePrice(Integer typeId);

    /**
     * 启用或者禁用类型
     * @param tree
     * @return
     */
    ServerResponse openOrClose(EngWasteTypeTree tree);

    /**
     * 获取主分类的列表信息
     * @return
     */
    ServerResponse getMainTypeInfo();

    /**
     * 获取废品类型的价格信息
     * @param id
     * @return
     */
    ServerResponse getTypePriceInfo(Integer id);

    /**
     * 获取节点的子类型
     * @return
     */
    ServerResponse getSonTreeNodes(Integer id);

    /**
     * 修改主分类的计量单位
     * @param tree
     * @return
     */
    ServerResponse editUnit(EngWasteTypeTree tree);

    /**
     * 删除节点信息
     * @param id
     * @return
     */
    ServerResponse delTreeNode(Integer id);

    /**
     * 获取一个节点的价格信息
     * @param id
     * @return
     */
    ServerResponse getAllPrice(Integer id);

    /**
     * 添加价格信息
     * @param lists
     * @return
     */
    ServerResponse editTypePrice(List<EngWasteTypeTreePrice> lists,Integer typeId);

    /**
     * 交换
     * @param id
     * @return
     */
    ServerResponse swap(Integer id,Integer sourceId);
}
